package 传智播客_黑马.java高级.annotation注解;

import java.lang.annotation.*;

//元注解：用来注解注解的注解，哈哈哈~,就是用来说明注解的,有两个常用的注解：@Target;@Retention

@Target(ElementType.TYPE)
//ElementType返回的是一个枚举，Target里面定义的属性是ElementType的十数组，所以我们需要给他传一个枚举数组，
// TYPE,FIELD,METHOD分别表示作用在类上，成员变量上，方法上，档摊可以都作用，传的是一个数组嘛

@Retention(RetentionPolicy.RUNTIME)
//@Retention就是说明一下这个注解会被保留到什么阶段，反射中讲过程序会经历三个阶段：Source，Class，Runnable阶段，RetentionPolicy它也是一个方法，返回值也是枚举
//一般我们自己写的注解都是用RUNNABLE的，会被保留到Class文件中，在运行时还会被jvm读取
@Documented
//作用是当别的类用了这个MyAnno2，且把代码javadoc生成了API时显不显示用了这个MyAnno2
@Inherited
//如果父类有了这个MyAnno2注解，且在MyAnno2上的元注解有@Inherited，那么子类也会自动的有这个注解
public @interface MyAnno2 {
}
